package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.SysMenu;
import com.zuipin.entity.SysRole;
import com.zuipin.util.Pagination;

/**
 *  角色mapper
  * @ClassName: SysRoleMapper
  * @Description: TODO
  * @author zhuangjiajian
  * @date 2017年09月14日 13:40:12
  *
 */
@Mapper
public interface SysRoleMapper {
	/**
	  * 查询角色
	  * @Title: findById
	  * @author zhuangjiajian
	  * @date 2017年09月14日 13:40:12
	  * @param id,
	  * @return
	  * @return SysRole
	 */
	public SysRole findById(Long id);
	
	/**
	  * 插入角色操作
	  * @Title: insert
	  * @author zhuangjiajian
	  * @date 2017年09月14日 13:40:12
	  * @param sysRole
	  * @return void
	 */
	public void insert(SysRole sysRole);
	
	/**
	  *  更新角色操作
	  * @Title: update
	  * @author zhuangjiajian
	  * @date 2017年09月14日 13:40:12
	  * @param sysRole
	  * @return void
	 */
	public void update(SysRole sysRole);
	
	/**
	  * 删除角色
	  * @Title: delete
	  * @author zhuangjiajian
	  * @date 2017年09月14日 13:40:12
	  * @param id,
	  * @return void
	 */
	public void delete(Long id);
	
	/**
	 * 搜索角色, 并自动分页
	  *  @Title: seachSysRole
	  * @author zhuangjiajian 
	  * @date 2017年09月14日 13:40:12
	  * @param sysRole
	  * @param page
	  * @return
	  * @return List<SysRole>
	 */
	public List<SysRole> seachSysRole(@Param("sysRole") SysRole sysRole, @Param("page") Pagination page);
	
	/**
	 * 搜索角色
	  *  @Title: seachSysRole
	  * @author zhuangjiajian 
	  * @date 2017年09月14日 13:40:12
	  * @param sysRole
	  * @param page
	  * @return
	  * @return List<SysRole>
	 */
	public List<SysRole> seachSysRoleBySelected(@Param("sysRole") SysRole sysRole);
	
	/**
	 *  获取最大ID
	  *  @Title: seachSysRole
	  * @author zhuangjiajian
	  * @date 2017年09月14日 13:40:12
	  * @param sysRole
	  * @param page
	  * @return
	  * @return List<SysRole>
	 */
	public Integer getMaxID();
	
	/**
	 * 改变状态
	 * @date 2017-9-14 16:12:43
	 * @author zhuangjiajian
	 * @param status
	 */
	public int modifyStatus(@Param("status") Integer status);
	
	/**
	 * 通过角色查看权限下的所有菜单信息
	 * @date 2017-9-15 09:37:41
	 * @author zhuangjiajian
	 * @param roleId
	 * @param enable
	 * @return
	 */
	public List<SysMenu> findMneuByRoleAndStatus(@Param("roleId") Long roleId, @Param("status") Integer status);
	
	public void addSysRole(SysRole sysRole);
	
	public String findRoleIdsByUserId(@Param("userId") Long userId);
	
}